package org.example.psa;

import com.alipay.sofa.rpc.config.ProviderConfig;
import com.alipay.sofa.rpc.config.ServerConfig;
import org.example.inner.inter.HelloService;
import org.example.inner.inter.acc.IAccountService;
import org.example.psa.biz.AccountServiceImpl;
import org.example.psa.biz.HelloServiceImpl;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;


@SpringBootApplication(scanBasePackages = {"org.example.inner.*", "org.example.psa.*"})
public class ProviderServeApp {
    public static void main(String[] args) {
        SpringApplication.run(ProviderServeApp.class, args);
//        RegistryConfig registryConfig = new RegistryConfig()
//                .setProtocol("zookeeper")
//                .setAddress("127.0.0.1:2181");
        ServerConfig serverConfig = new ServerConfig()
                .setProtocol("bolt") // 设置一个协议，默认bolt
                .setPort(12200) // 设置一个端口，默认12200
                .setDaemon(false); // 非守护线程

        ProviderConfig<HelloService> providerConfig = new ProviderConfig<HelloService>()
                .setInterfaceId(HelloService.class.getName()) // 指定接口
                .setRef(new HelloServiceImpl()) // 指定实现
                .setServer(serverConfig); // 指定服务端

//        ProviderConfig<HelloService> providerConfig = new ProviderConfig<HelloService>()
//                .setInterfaceId(HelloService.class.getName()) // 指定接口
//                .setRef(new HelloServiceImpl()) // 指定实现
//                .setServer(serverConfig) // 指定服务端
//                .setRegistry(registryConfig);

        providerConfig.export(); // 发布服务

        ProviderConfig<IAccountService> providerConfig2 = new ProviderConfig<IAccountService>()
                .setInterfaceId(IAccountService.class.getName()) // 指定接口
                .setRef(new AccountServiceImpl()) // 指定实现
                .setServer(serverConfig); // 指定服务端
        providerConfig2.export(); // 发布服务

        System.out.println("ProviderServeApp---启动完成!");
    }
}
